iT邦幫忙

2023 iThome 鐵人賽

DAY 2
0
SideProject30

以vue.js + node.js 搭建一個客服填單系統系列 第 2

關於系統分析的那些事

  • 分享至 

  • xImage
  •  

Hi,大家好,我是大河馬,今天是第2天,所以我們開工吧。
雖然我有說到以平常處理專案的方式來執行這次的 side project,不過平常夠忙了,所以只好一切從簡啦。

我們先來執行系統開發的第一件重要的事,並決定大架構啦。

一般我們在執行專案時,會先進行系統訪談以確認功能項目,並且依照需求環境、預算進行規劃,用以決定細項規格,這邊列出幾項常用評估項目:

執行環境

作業系統平台 說明
windows平台 多數需要編預算買lincense,因為有圖形界面,對大多數的人來說好管理維護,但是也因為有圖形界面,一般情形下需要較高的CPU、記憶體資源,若有頻繁的檔案處理需考慮filelock的情形,紗能力適用
linux/UNIX base 可省掉軟體費用(當然也是有要買授權的版本),因為多數情形下不會裝圖形界面,資源需求相對較低,但是也因為沒有圖形界面,對較不熟悉的人來說,維護成本較高

說明:一般是看預算或是後續可維護的人力來選擇實際建置的作業系統,目前多數的執行環境均以瀏覽器為主,所以其實對系統開發來說,用什麼作業系統的影響不大,除非說有執行shell或是排程作業的需求,才會有比較大的影響。由於我近幾年的專案機乎都是建置在docker容器上,所以我比較偏好使用linux環境來做為執行之用

資料庫

資料庫是在放資料用的,一般是在規劃專案的重點項目,

資料庫軟體 項目 特點
關聯式資料庫 Oracle、postgresql、SQL Serevr、MySQL…等 使用SQL進行資料查詢,且可設置表格與表格之間的關聯,用以保護資料本身之完整性,但在超大量資料的情形下,資料的讀寫速度會不如 NoSQL的快速
非關聯式資料庫 MongoDB、firebase、Neo4j…等 本身使用key-value 、 json document 或檔案作為底層的資料單位,所以硬碟的使用量會遠比關聯式資料庫大,但是因為一次只查一組資料集合的內容,所以在超大量資料的情形下,讀寫速度非常快
PS. 上述的超大量是自己的經驗,那時候是用相同的兩百多萬筆資料放進 oracle 和 MongoDB 中,也設定好相同的索引了,結果讀寫速度的比較上,Oracle 被虐爆 XDDD

說明:資料庫雖然很多種,但是最主要的選擇是關聯式和非關聯式資料庫二選一,接下來就是看有預算或是沒預算的限制了,畢竟資料庫中,有像orale 那種幾百萬的尊爵不凡軟體,也有免費的MySQL、PostgreSQL 可以選。資料庫的選擇會很大的影響到開發工作,所以在選用時,會花比較多心思決定。

程式語言

位置 項目
後端 Java、ASP.NET、python、node.js、Go…等,基本上是會什麼用什麼
前端 HTML、CSS、Javascript,當然也可以不用js,前端單純只顯示資料,但是除非特定情境下,現在幾乎不會有人這樣做了

結論

上述是在初期時,會先決定的2個大架構,其實還有其他的,例如說有沒有可能用 windows form或 APP 來執行,實際環境有沒有可能直接去申請雲端空間,例如 heroku 或是 aws…等,就不用負擔作業系統維護成本,不過這是另一個故事了。

那回到正題,配合這次的 side projects,我的環境需求設定如下

系統名稱:你講我忘報單系統

執行環境:windows 10(畢竟是在自己的開發機上執行的)

資料庫:PostgreSQL

開發語言:後端:node.js(使用express框架)。前端:HTML、CSS、Javascript(使用vue.js框架)

開發工具: VSCode

既然環境、工具、資料庫都訂好了,那明天就進入系統分析的階段啦,我們明日待續了


上一篇
想不出來標題,先來個楔子吧
下一篇
UML的使用
系列文
以vue.js + node.js 搭建一個客服填單系統30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言